<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    function getSum(x, y) {
      return x + y
    }
    let re = getSum(1, 2)
    console.log(re)
    //断点进入函数，F10不进入函数体，F11进入函数体，看执行过程
    console.log('-------------------------------------------------')
    //1.俩个相同的函数后面的会覆盖前面的函数（就近原则）
    function fn() { console.log(1) }  //被覆盖
    function fn() { console.log(2) }  //被输出
    fn()
    function fn1() { console.log(2) }  //被覆盖
    function fn1() { console.log(1) }  //被输出
    fn1()
    console.log('-------------------------------------------------')
    //2.参数不匹配
    // --形参过多，自动填上undefined
    // --实参过多，多余的实参就会被忽略（函数内部有一个arguments，里面装着所有的实参）
    function fn2(a, b) {
      console.log(a + b);
    }
    //(1)实参多余形参 剩余形参不参与运算
    fn2(1, 2, 3) //1 + 2 = 3
    // (2)实参少于形参 剩余的实参不参与运算
    fn2(1)  //1 + undefined = NaN
    console.log('-------------------------------------------------')
    //3.return后面代码不会再被执行，会立即结束当前函数，所以return后面的数据不要换行写

    //4.break与return结束的区别
    //break结束的是佛如和switch循环，return结束的是函数
  </script>
</body>

</html>